// pages/addressManage/addressManageHome/addressManageHome.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    //从全局获取到的URL
    globalUrl:"",
    // 地址显示列表，获取到的数据，该这个列表
    addressList:[
    ],
    token:"",
    //从发布任务界面接收到的id
    addressId:"",
  },  

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const id = options.id;
    console.log("接了一个id:",id)
    this.setData({
      'addressId':id//给获取到的id赋值
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    const userid = wx.getStorageSync('userid');
    const userInfo = wx.getStorageSync('UserData');
    console.log("用户ID为：")
    console.log(userid)
    console.log(userInfo.token)
    // 获取小程序实例
    const app = getApp();
    // 获取全局变量
    const globalUrl = app.globalData.globalUrl;
    const islogin = app.globalData.islogin;
    console.log(globalUrl)
    this.setData({
      globalUrl:globalUrl,
      token:userInfo.token
    })
    //根据token获取请求
    wx.request({
      url: globalUrl+'/user/address/queryById',
      method: 'GET',
      header: {
        "token": userInfo.token,
      },
      success: (response) => {
        //来到此处，说明请求发送成功
        if(response.data.code === 200){ //成功请求到指定用户的地址列表
          console.log("地址数据");
          console.log(response.data.data)

          this.setData({
            'addressList': response.data.data,
          })
          //把获取到的用户ID存入到域中，然后传递到地址管理界面
          //wx.setStorageSync('useraddress', response.data.data);
        }else if(response.data.code === 401){
          wx.showToast({
            title: '您还没有登录，请进行登录',
            icon: 'none',
            success: function() {
              // 在成功回调函数中执行返回操作
              setTimeout(function() {
                wx.navigateBack()
              }, 100) // 设置延迟和提示的显示时间一致，确保提示显示完毕后再执行返回操作
            }
          })
        }else{
          wx.showToast({
            title: '当前网络繁忙，稍后再试！',
            icon: 'none'
          })
        }
      },
    });
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },
  /**
   * 删除用户信息
   */
  deleteAddressByUserId1(event){
    const index = event.currentTarget.dataset.index;
    console.log('Index:', index);
    console.log("Address List:", this.data.addressList);
    console.log("Address List:", this.data.addressList[index]);

    //获取用户点击的指定的地址信息的索引
    //通过索引获取到地址的主键ID
    console.log("地址主键ID:",this.data.addressList[index].addressId)

    const data = this.data;

    // 获取小程序实例
    const app = getApp();
    // 获取全局变量
    const globalUrl = app.globalData.globalUrl;
    const islogin = app.globalData.islogin;
    console.log(globalUrl)
    this.setData({
      globalUrl:globalUrl
    })



    //设置一个弹窗
    wx.showModal({
      title: '删除地址',
      content: '您正在删除指定收货地址信息，点击确认完成杀删除',
      success (res) {
        if (res.confirm) {
          console.log('用户点击确定')
            wx.request({
              url: globalUrl+'/user/address/deleteUserAddressById',
              method: 'POST',
              header: {
                "token": data.token,
                "addressid":data.addressList[index].addressId
              },
              success: (response) => {
        
                if(response.data.code === 200){ //成功请求到用户的数据
                  console.log("重新设置值")
                  this.setData({
                    'addressList': response.data.data,
                  })
                }else{
                }
              },
            });
    
        } else if (res.cancel) {
          console.log('用户点击取消')
        }
      }
    })




  },
  //对指定地址进行编辑
  editAddressByAddressId(event){
    const index = event.currentTarget.dataset.index;
    console.log('Index:', index);
    console.log("Address List:", this.data.addressList);
    console.log("点击了地址:", this.data.addressList[index]);
    console.log("地址的主键ID为：",this.data.addressList[index].addressId)
    console.log("地址的用户ID为：",this.data.addressList[index].userId)
    wx.setStorageSync("addressInfo",this.data.addressList[index]);
    //跳转 到用户地址编辑界面
    wx.navigateTo({
      url: '/pages/addressManage/addressEditItem/addressEditItem',
    })
  },
  //删除指定用户
  deleteAddressByUserId(event) {
    const index = event.currentTarget.dataset.index;
    console.log('Index:', index);
    console.log("Address List:", this.data.addressList);
    console.log("Address List:", this.data.addressList[index]);
  
    // 获取小程序实例
    const app = getApp();
    // 获取全局变量
    const globalUrl = app.globalData.globalUrl;
    const islogin = app.globalData.islogin;
    console.log(globalUrl)
    this.setData({
      globalUrl: globalUrl
    })
  
    // 设置一个弹窗
    wx.showModal({
      title: '删除地址',
      content: '您正在删除指定收货地址信息，点击确认按钮完成删除',
      success: (res) => { // 使用箭头函数确保在回调中使用的是当前上下文的 this
        if (res.confirm) {
          console.log('用户点击确定')
          wx.request({
            url: globalUrl + '/user/address/deleteUserAddressById',
            method: 'POST',
            header: {
              "token": this.data.token,
              "addressid": this.data.addressList[index].addressId
            },
            success: (response) => {
              if (response.data.code === 200) { // 成功删除指定用户的地址数据
                console.log("重新设置值")
                this.setData({
                  'addressList': response.data.data,
                })
                wx.showToast({
                  title: '删除地址成功',
                  icon: 'none'
                })
              } else {
                // 处理请求失败的情况
              }
            },
          });
        } else if (res.cancel) {
          console.log('用户点击取消')
        }
      }
    })
  },
  //设置默认
  beDefault(event){
    // 获取小程序实例
    const app = getApp();
    // 获取全局变量
    const globalUrl = app.globalData.globalUrl;
    const islogin = app.globalData.islogin;
    console.log(globalUrl)
    this.setData({
      globalUrl: globalUrl
    })
    // 获取点击开关的状态
    var isChecked = event.detail.value;
    // 获取当前点击地址的 ID
    var index = event.currentTarget.dataset.index;
    console.log("当前开关状态",isChecked)
    console.log("当前地址ID",index)
    console.log('Index:', index);
    console.log("Address List:", this.data.addressList);
    console.log("点击了地址:", this.data.addressList[index]);
    const addressInfo = JSON.stringify(this.data.addressList[index]);

    const addressItem = this.data.addressList[index];
    console.log("addressItem.isDefault",addressItem.isDefault)
    // 如果当前状态已经是选中状态，则不改变状态

      if (!isChecked) {
        this.setData({
          isChecked: true
        });
        return;
      }
    // 如果开关已经打开，说明选择了当前这个为默认地址，则进行修改
    //if (isChecked) {
    // 调用后端接口将当前地址设为默认地址
    wx.request({
      url:  globalUrl + '/user/address/defaultAddress',
      method: 'POST',
      header: {
        "token": this.data.token,
      },
      data: addressInfo,
      success: (response) => {
        if (response.data.code === 200) { // 成功删除指定用户的地址数据
          this.setData({
            'addressList': response.data.data,
          })
          wx.showToast({
            title: '默认地址设置成功',
            icon: 'none'
          })
        } else {
          console.log("123123")
          // 处理请求失败的情况
        }
      },
      fail: function(error) {
        // 设置默认地址失败，可以进行相应的提示或处理
        console.error('设置默认地址失败', error);
      }
    });
    //}
  },
  //跳转到用户的添加地址界面
  toAddAddressPage(){
    wx.navigateTo({
      url: '/pages/addressManage/addressAddEdit/addressAddEdit',
    })
  },
  chooseAddress(e){
    const addressid = e.currentTarget.dataset.index;
    //当用户点击了指定地址时，设置缓存
    if(this.data.addressId == 11){
      wx.setStorageSync("addressidHome",addressid);//起始地址
    }else if(this.data.addressId == 22){
      wx.setStorageSync("addressidGo",addressid);//终点地址
    }
    wx.navigateBack()
  },
})